//package TrafficControlSystem.TrafficLights;
//
//import TrafficControlSystem.TrafficLights.TrafficLightsController;
//
//import java.awt.Color;
//import java.awt.Dimension;
//import java.awt.event.ActionEvent;
//import java.awt.event.ActionListener;
//import java.io.IOException;
//import java.io.ObjectInputStream;
//import java.io.ObjectOutputStream;
//import java.net.Socket;
//import java.net.UnknownHostException;
//
//import javax.swing.BorderFactory;
//import javax.swing.JButton;
//import javax.swing.JPanel;
//
//
//public class LightsControlPanel extends JPanel
//{
//	private final int PORT_NUMBER = 5000;
//	
//	private String adressIp = new String("192.168.1.211");
//	
//	private JButton buttons[][] = new JButton[9][2];
//	
//	private JButton connectButton = new JButton("connect");
//	private JButton sendButton = new JButton("send");
//	
//	private TrafficLightsController trafficLightsController = new TrafficLightsController();
//	
//	/** socket, przez ktory klient bedzie komunikowal sie z serwerem */
//	private Socket clientSocket;
//	/** strumien wejsciowy */
//	private ObjectInputStream input;
//	/** strumien wyjsciowy */
//	private ObjectOutputStream output;
//	/** Watek odbierajacy zdarzenia od kontrolera i wywolujacy odpowiednie akcje */
//	private Thread readerThread;
//	
//	public LightsControlPanel()
//	{
//		this.setLayout(null);
//		setBorder(BorderFactory.createLineBorder(Color.black));
//		this.setPreferredSize(new Dimension(425,550));
//		for(int i = 0 ; i< 9 ; i++)
//		{
//			for(int j=0; j<2;j++)
//			{
//				buttons[i][j] = new JButton("Auto");
//				buttons[i][j].setBounds(110*(i%3)+50,110*(i/3)+50*j+50, 100, 50);
//				buttons[i][j].addActionListener(new ButtonListener());
//				if(j==1) buttons[i][j].setLabel("Change");
//				this.add(buttons[i][j]);
//			}
//		}
//		
//		connectButton.setBounds(50,400,100,100);
//		this.add(connectButton);
//		connectButton.addActionListener(new ActionListener()
//		{
//			
//			@Override
//			public void actionPerformed(ActionEvent e)
//			{
//				//tutaj zrobic connect
//				System.out.println("listener connect");
//				try
//				{
//					connectToServer(adressIp);
//				}
//				catch (UnknownHostException e1)
//				{
//					// TODO Auto-generated catch block
//					e1.printStackTrace();
//				}
//				catch (IOException e1)
//				{
//					// TODO Auto-generated catch block
//					e1.printStackTrace();
//				}
//				
//			}
//		});
//		
//		sendButton.setBounds(270,400,100,100);
//		this.add(sendButton);
//		sendButton.addActionListener(new ActionListener()
//		{
//			
//			@Override
//			public void actionPerformed(ActionEvent e)
//			{
//				// TODO Auto-generated method stub
//				send(new String("hello Dominik\n"));
//			}
//		});
//	}
//	
//	private class ButtonListener implements ActionListener
//	{
//		@Override
//		public void actionPerformed(ActionEvent e)
//		{			
//			for(int i = 0 ; i< 9 ; i++)
//			{
//				for(int j=0 ; j<2 ;j++)
//				{	
//					if(e.getSource().equals(buttons[i][j]))
//					{
//						if(j==0)
//						{
//							trafficLightsController.getCrossing(i).changeAuto();
//							if(trafficLightsController.getCrossing(i).isAuto()) buttons[i][0].setLabel("Auto");
//							else buttons[i][0].setLabel("Manual");
//							//buttons[i][0].setBackground(Color.red);
//						}
//						else
//						{
//							trafficLightsController.getCrossing(i).switchLights();
//						}
//					};
//				}
//			}
//		}
//	}
//	public void setButtonColorToRed(int which){buttons[which][0].setBackground(Color.red);}
//	public void setButtonColorToGreen(int which){buttons[which][0].setBackground(Color.green);}
//	public TrafficLightsController getTrafficLightsController() { return trafficLightsController;}
//	
//	
//	
//	
//	
//	private void connectToServer(final String address) throws UnknownHostException, IOException
//	{
//		clientSocket = new Socket(address, PORT_NUMBER);
//		output = new ObjectOutputStream(clientSocket.getOutputStream());
//		input = new ObjectInputStream(clientSocket.getInputStream());
//		try
//		{
//			Thread.sleep(100);
//		}
//		catch (InterruptedException e)
//		{
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		
//		System.out.println("polaczono");
//		
////		readerThread = new Thread(new ReaderThread());
////		readerThread.start();
//	}
//	
//	/**
//	 * Wysyla zdarzenia do serwera
//	 * 
//	 * @param gameEvent
//	 */
//	private void send(final Object o)
//	{
//		try
//		{
//			output.writeObject(o);
//			output.flush();
//		}
//		catch (IOException e)
//		{
////			widok.poinformujGracza("Nie udalo sie wyslac do serwera");
//			System.out.println("Nie udalo sie wyslac do serwera");
//			stop();
//			e.printStackTrace();
//		}
//	}
//	
//	/**
//	 * Zamyka strumien i socketa i konczy watek klienta
//	 */
//	private void stop()
//	{
//		try
//		{
//			output.close();
//			input.close();
//			clientSocket.close();
//		}
//		catch (IOException e)
//		{
//			e.printStackTrace();
//		}
//	}
//	
//	
//	private class ReaderThread implements Runnable
//	{
//		/**
//		 * Watek odczytujacy zdarzenia pochodzace z kontrolera
//		 * 
//		 */
//		public void run()
//		{
////			GameEvent gameEvent;
//			while (true)
//			{
//				try
//				{
//					Object o = input.readObject();
//					System.out.println("odczytano z servera");
//				}
//				catch (IOException e)
//				{
////					widok.poinformujGracza("Utracono polaczenie z przeciwnikiem");
////					widok.setPlanszaEnabled(false);
//					System.out.println("utracono polaczenie z przeciwnikiem");
//					break;
//				}
//				catch (ClassNotFoundException e)
//				{
//					e.printStackTrace();
//					break;
//				}
//
////				EventHandler eventHandler = mapaObslugiZdarzen.get(gameEvent
////						.getClass());
//
////				eventHandler.handle(gameEvent);
//			}
//		}
//	}//ReaderThread
//
//}
